Usually the application of a computer program is hardware dependent. Therefore the program development has to consider different hardware solutions for the same functionality of the software solution which has to be adapted accordingly. In order to be independent from the hardware design the virtual machine concept has been developed in the past. On such a virtual machine a virtual machine code or a so called Meta language program code will be executed. Virtual machine code will be executed on a micro controller using the so called Meta language program code. As an example of such a virtual machine the Java virtual machine is known within the prior art and on such a virtual machine a virtual machine code will be executed. Such virtual machine code or Meta language program code is executed e.g. on micro controllers of Smart Cards or micro controller based identification cards. Such cards are e.g. known as so called Java Cards which use the Java virtual machine internally. Such Smart Cards or Java Cards are typically used to execute e.g. Java applications on Smart Cards in order to perform encryption processes on Smart Cards to create a certain degree of security during the use of such Smart Cards or for identification purposes of the user of the card.
As an example of technological background of the invention EP 1 821 210 A2 discloses a virtual machine environment using a Java virtual machine on top of a hardware dependent platform, where the Java platform is used to execute a Java program.
Sometimes the execution of Meta language code or virtual machine code may contain failures or may lead to failures which might be limited such that the execution of language code containing or creating failures should be replaced by language code without containing or creating such failures.
U.S. Pat. No. 6,202,208 describes a patching environment for modifying a Java virtual machine running on a computer system. The environment comprising a patch data structure on an electronic memory of the computer including as method table, a data item contained in the patch data structure to identify the patch data structure and a second data item associated with each of the identified patches.